package com.candy.excp;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class Test {
    public static void main(String[] args) {

   test04();

    }
    /**
     * 手动制造异常并抛出，一般用于通信处理
     * @throws FileNotFoundException
     */
    public static void test04() {
        int num=5;
        if(num==5){
             throw  new NullPointerException();
        }

    }


    public static void test05() {
//        向上抛出异常由上层调用者进行处理，若一直向上抛出，则由jvm进行处理
        try {
            test03();
        } catch (FileNotFoundException e) {
            System.out.println("1111");
        }


    }


    /**
     * 异常向上抛出
     * @throws FileNotFoundException
     */
    public static void test03() throws FileNotFoundException {

        FileInputStream is=new FileInputStream("");


    }

    /**
     * 手动捕获异常
     */
    public static void test02() {
        int num_01=9;
        int num_02=0;
        try {
//            可能会出现异常的代码
            System.out.println(num_01/num_02);
        }catch (NullPointerException exp){
//            catch针对不同的异常分别进行的处理
            System.out.println("空指针异常");
        }
        catch (ArithmeticException e){
            System.out.println("分母不能为0");
        }
        catch (Exception exp){
            System.out.println(exp);
        }finally {
//            finally无论代码是否出现异常都会执行的代码块
            System.out.println("我是finally");
        }



    }

    public static void test01() {
        int num_01=9;
        int num_02=0;
//        运行时异常
        System.out.println(num_01/num_02);
//        System.out.println();
//        编译时异常、检查性异常
//        FileInputStream is=new FileInputStream("");


    }
}
